<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Pemateri extends CI_Controller {

	function __construct()
    {
		// Call the Model constructor
        parent::__construct();
		
		if($this->session->userdata('login') === FALSE)
			redirect(base_url());
    }
	
	/*
	 * function index()l
	 * digunakan untuk menampilkan data dalam bentuk table
	 */
	public function index()
	{
		if($this->session->userdata('group') == '1'){
			$this->load->model('model_pemateri');
			
			$q='';
			$page=1;
			$limit=20;
			if(isset($_POST['page'])){
				$page = $_POST['page'];
				$q = $_POST['q'];
			}
			
			$data['pemateri'] = $this->model_pemateri->get_all(($page-1),$limit,$q);
			$data['q'] = $q;
			$data['page'] = $page;
			$data['limit'] = $limit;
			
			$sub_view['sub'] = $this->load->view('admin/pemateri/data',$data,TRUE);
			$view['content'] = $this->load->view('admin/frame',$sub_view,TRUE);
			$this->load->view('index',$view);
		}else{
			redirect(base_url());
		}
	}
	
	/*
	 * function form()
	 * digunakan untuk melakukan tambah dan edit, dengan alur
	   1. memanggil view form
	   2. melakukan proses insert dan update
	 * paramter $id adalah id dari data tsb
	 * jika $id=0, maka ini adalah bendera untuk melakukan tambah data
	 * jika $id!=0, maka ini adalah bendera untuk melakukan edit data
	 */
	public function form($id=0)
	{
		if($this->session->userdata('group') == '1'){
			$this->load->model('model_pemateri');
			
			
			if(isset($_POST['data'])){
				$data = $_POST['data'];
				
				$url = preg_replace('~[^\\pL0-9_]+~u', '-', str_replace(" ","-",$data['nama']));
				$url = trim($url, "-");
				$url = iconv("utf-8", "us-ascii//TRANSLIT", $url);
				$url = strtolower($url);
				$url = preg_replace('~[^-a-z0-9_]+~', '', $url);

				$data['permalink'] = $url;
				
				if($id==0){
					$data['user_id'] = $this->session->userdata('uid');
					$data['created'] = date('Y-m-d H:i:s');
					$this->model_pemateri->add($data);
				}else{
					$this->model_pemateri->edit($id,$data);
				}
				/*
				 * ini digunakan untuk memberitahukan prosesnya berhasil atau tidak
				 * data ini dalam bentuk json
				 * status berisikan success atau error
				 * url berisikan, setelah berhasil, nanti akan diredirect kemana.
				 */
				echo '{"status":"success","url":"admin/pemateri.html"}';
				
				return;
			}
			
			$data['pemateri'] = $this->model_pemateri->get_by($id);
			$this->load->view('admin/pemateri/form',$data);
		}else{
			redirect(base_url());
		}
	}
	
	/*
	 * function delete()
	 * digunakan untuk menghapus data
	 * parameter $id adalah id dari data tsb.
	 */
	public function delete($id=0)
	{
		if($this->session->userdata('group') == '1'){
			$this->load->model('model_pemateri');
			
			$this->model_pemateri->delete($id);
			
			redirect('admin/pemateri');
			
		}else{
			redirect(base_url());
		}
	}
	
	function autocomplete(){
		if($this->session->userdata('group') == '1'){
			$this->load->model('model_pemateri');
			
			$q = $_GET['q'];
			
			$pemateri = $this->model_pemateri->get_all(0,10,$q,'yes');

			$output = '';
			foreach($pemateri['data']->result_array() as $row){
				$output .= sprintf("%s|%s\n", $row['nama'].", $row[keterangan], $row[nama_kota]",$row['id']);
			}
			$output = substr($output, 0, -1);
			echo $output;
		}
	}
}
